package com.lemobar.pay.model;


import com.lemobar.pay.model.alipay.response.AlipayTradeFastpayRefundQueryResponse;
import com.lemobar.pay.model.wxpay.response.WxPayRefundQueryResponse;
import lombok.Builder;
import lombok.Data;

import java.util.Date;

/**
 * 退款查询 响应
 * wx -> {@link WxPayRefundQueryResponse}
 * ali -> {@link AlipayTradeFastpayRefundQueryResponse}
 */
@Data
@Builder
public class RefundQueryResponse {


    /**
     * 业务结果
     * wx -> result_code SUCCESS/FAIL  SUCCESS=关闭成功 FAIL=关闭失败(去看errCode)   <br>
     * ali -> code 10000/其他   10000=关闭成  其他=关闭失败(去看errCode) 公共错误码：https://opendocs.alipay.com/open/common/105806  + 业务错误码：...
     */
    private String resultCode;

    /**
     * 业务返回码 错误代码                   <br>
     * wx -> err_code   业务错误码
     * ali -> sub_code  公共错误码：https://opendocs.alipay.com/open/common/105806  + 业务错误码：...
     */
    private String errCode;

    /**
     * 业务返回 错误代码描述                 <br>
     * wx -> err_code_des
     * ali -> sub_msg
     */
    private String errCodeDes;

    /**
     * 订单号(商户订单号)
     * wx -> out_trade_no
     * ali -> out_trade_no
     */
    private String orderId;

    /**
     * 订单号(外部订单号)
     * wx -> transaction_id
     * ali -> trade_no
     */
    private String outOrderId;

    /**
     * 订单总金额(元)
     * wx -> total_fee
     * ali -> total_amount
     */
    private Double orderAmount;

    /**
     * 退款请求单号
     * wx -> out_refund_no_0
     * wx -> out_request_no
     */
    private String refundId;

    /**
     * 退款金额(元)
     * wx -> refund_fee_0
     * ali -> refund_amount
     */
    private Double refundAmount;

    /**
     * 退款状态
     * wx -> refund_status_0
     * -SUCCESS—退款成功
     * -REFUNDCLOSE—退款关闭，指商户发起退款失败的情况。
     * -PROCESSING—退款处理中
     * -CHANGE—退款异常
     * ali -> refund_status
     * -REFUND_SUCCESS 退款处理成功；
     * -未返回该字段表示退款请求未收到或者退款失败；
     */
    private String refundStatus;

    /**
     * 退款完成时间
     * wx -> refund_success_time_0
     * ali - > gmt_refund_pay
     */
    private Date refundFinishTime;
}
